package com.interview.case02;

import java.math.BigDecimal;

/**
 * 抽象类 Fruit，表示一种水果。
 */
public abstract class Fruit {
    private String name;
    private BigDecimal pricePerJin; // 单价（元/斤）

    public Fruit(String name, BigDecimal pricePerJin) {
        if (pricePerJin.compareTo(BigDecimal.ZERO) < 0) {
            throw new IllegalArgumentException("单价不能为负数");
        }
        this.name = name;
        this.pricePerJin = pricePerJin;
    }

    public String getName() {
        return name;
    }

    public BigDecimal getPricePerJin() {
        return pricePerJin;
    }

    /**
     * 计算该水果的总价。
     *
     * @param quantity 购买的斤数
     * @return 总价（元）
     */
    public BigDecimal calculateTotalPrice(int quantity) {
        if (quantity < 0) {
            throw new IllegalArgumentException("购买的斤数不能为负数");
        }
        return pricePerJin.multiply(new BigDecimal(quantity));
    }
}
